<?php

class myUser extends sfBasicSecurityUser {

    /**
     * Día 13, genero un método para almacenar en la sesión del usuario 
     * los últimos 3 trabajos visitados
     * Este método es llamado cada vez que se llama al executeView del módulo Job
     * @param JobeetJob $job 
     */
    public function addJobToHistory(JobeetJob $job) {
        $ids = $this->getAttribute('job_history', array());

        if (!in_array($job->getId(), $ids)) {
            array_unshift($ids, $job->getId());

            $this->setAttribute('job_history', array_slice($ids, 0, 3));
        }
    }

    /**
     * Se ejecuta en la plantilla principal, según los trabajos almacenados en la vista 
     * se realiza la consulta para buscar los datos en la BBDD
     * @return type 
     */
    public function getJobHistory() {
        $ids = $this->getAttribute('job_history', array());

        if (!empty($ids)) {
            return Doctrine_Core::getTable('JobeetJob')
                            ->createQuery('a')
                            ->whereIn('a.id', $ids)
                            ->execute()
            ;
        }

        return array();
    }

    /**
     * Reseteamos el historial
     */
    public function resetJobHistory() {
        $this->getAttributeHolder()->remove('job_history');
    }

}
